<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
<script>



//【示例1】根据面向对象设计原则，所有成员应该都被封装在类结构体内，因此可以这样完善上节示例的设计思路。
function Book(title,pages){ 		// 构造函数模式设计
    this.title = title;
    this.pages = pages; 
    Book.prototype.what = function(){		// 原型模式设计，位于类的内部
        alert(this.title +this.pages);
    };
}
var book1 = new Book("JavaScript程序设计",160);
var book2 = new Book("C程序设计",240);
alert(book1.title);
alert(book2.title);
//【示例2】可以使用if语句判断原型方法是否存在，如果存在就不再创建该方法，否则就创建方法。
function Book(title,pages){
    this.title = title;
    this.pages = pages; 
    if(typeof Book.isLock == "undefined"){   // 创建原型方法的锁，如果不存在该方法则创建
        Book.prototype.what = function(){
            alert(this.title +this.pages);
        };
        Book.isLock = true;		// 创建原型方法后，把锁锁上，避免重复创建
    }
}
var book1 = new Book("JavaScript程序设计",160);
var book2 = new Book("C程序设计",240);
alert(book1.title);
alert(book2.title);





</script>
</head>
<body>
</body>
</html>
